package com.zenithmind.task.pojo.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.zenithmind.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 任务关注实体类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("task_follower")
public class TaskFollower extends BaseEntity {

    /**
     * 关注ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 任务ID
     */
    @TableField("task_id")
    private String taskId;

    /**
     * 任务标题
     */
    @TableField("task_title")
    private String taskTitle;

    /**
     * 关注者ID
     */
    @TableField("follower_id")
    private String followerId;

    /**
     * 关注者名称
     */
    @TableField("follower_name")
    private String followerName;

    /**
     * 关注者邮箱
     */
    @TableField("follower_email")
    private String followerEmail;

    /**
     * 关注时间
     */
    @TableField("follow_time")
    private LocalDateTime followTime;

    /**
     * 关注类型：1-主动关注，2-被分配关注，3-被提及关注
     */
    @TableField("follow_type")
    private Integer followType;

    /**
     * 通知设置：1-所有更新，2-重要更新，3-不通知
     */
    @TableField("notification_setting")
    private Integer notificationSetting;

    /**
     * 是否接收邮件通知
     */
    @TableField("email_notification")
    private Integer emailNotification;

    /**
     * 是否接收短信通知
     */
    @TableField("sms_notification")
    private Integer smsNotification;

    /**
     * 最后查看时间
     */
    @TableField("last_view_time")
    private LocalDateTime lastViewTime;

    /**
     * 状态：0-取消关注，1-关注中
     */
    @TableField("status")
    private Integer status;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 是否删除：0-删除，1-正常
     */
    @TableField("is_deleted")
    @TableLogic
    private Integer isDeleted;
}
